﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Dao.Intermediarios;
using Dao;

namespace _InformaticaIndustrial_DerivdosVinicos.Interfaz
{
    public partial class BMCentroTrabajo : Form
    {
        #region Property
        DataGridView dgvCT;
        private Principal principal;
        int idCT;
        CentroTrabajo centroTrabajo;
        IPEdificio ipEdificion = new IPEdificio();
        IPPuesto ipPuesto = new IPPuesto();
        IPCentroTrabajo ipCentroTrabajo = new IPCentroTrabajo();

        #endregion Property

        #region Methods

        public BMCentroTrabajo()
        {
        }

        public BMCentroTrabajo(Principal principal)
        {
            InitializeComponent();
            this.principal = principal;
            //dgvCTrabajo.AutoGenerateColumns = false;
            LoadDGV();
        }

        private void LoadDGV()
        {
            dgvCTrabajo.DataSource = ipCentroTrabajo.getAll<CentroTrabajo>();

            //for (int i = 0; i < dgvCTrabajo.Rows.Count; i++)
            //{
            //    //                (DataGridViewComboBoxCell) dgvCTrabajo.Rows[i].Cells["Edificio"].
            //}
        }

        private void BuscarCT()
        {
            try
            {
                if (textBoxBuscar.Text.Equals(""))
                {
                    dgvCTrabajo.DataSource = ipCentroTrabajo.getAll<CentroTrabajo>();

                    //for (int i = 0; i < dgvCTrabajo.Rows.Count ; i++)
                    //{
                    //    dgvCTrabajo.Rows[i].Cells[0] = ;
                    //}
                }
                else
                {
                    dgvCTrabajo.DataSource = ipCentroTrabajo.getByCriterio<CentroTrabajo>("", "=", textBoxBuscar.Text);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }

        #endregion Methods

        #region Events

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            switch (e.ColumnIndex)
            {
                case 0:
                    modificarCentroTrabajo(e.RowIndex);
                    break;
                case 1:
                    eliminarCentroTrabajo(e.RowIndex);
                    break;
                default:
                    break;
            }
        }

        private void modificarCentroTrabajo(int i)
        {
            centroTrabajo = (CentroTrabajo)(dgvCTrabajo.Rows[i].DataBoundItem);
            Intermediario.confirmarCambios();
            MessageBox.Show("Centro de Trabajo Modificado");
        }

        private void eliminarCentroTrabajo(int p)
        {
            try
            {
                IList<RF_CT> rfList = new IPCentroTrabajo().getCCId(Convert.ToInt16(dgvCTrabajo.Rows[p].Cells["Id"].Value));
                if (rfList.Count < 0)
                {
                    ipCentroTrabajo.Delete(Convert.ToInt16(dgvCTrabajo.Rows[p].Cells["Id"].Value));
                    MessageBox.Show("Centro de Trabajo Eliminado");
                    textBoxBuscar.Text = "";
                   
                    BuscarCT();                    
                }
                else
	            {
                     MessageBox.Show("Centro de Trabajo asociado a una ruta");
	            }
            }
            catch (Exception)
            {
                throw;
            }
        }

        private void buttonBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                BuscarCT();
            }
            catch (Exception)
            {
                throw;
            }
        }

        private void buttonCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #endregion Methods
    }
}
